(fully detailed)